package drds.binlog.instance.core;

import drds.binlog.common.LifeCycle;
import drds.binlog.common.alarm.AlarmHandler;
import drds.binlog.common.position.ClientInfo;
import drds.binlog.metadata.MetaDataManager;
import drds.binlog.parse.EventParser;
import drds.binlog.sink.EventSink;
import drds.binlog.store.EventStore;

/**
 * 代表单个canal实例，比如一个destination会独立一个实例
 */
public interface BinlogTask extends LifeCycle
{

    String getDestination();

    /**
     * 客户端发生订阅/取消订阅行为
     */
    boolean subscribeChange(ClientInfo clientInfo);

    MetaDataManager getMetaDataManager();

    AlarmHandler getAlarmHandler();

    EventParser getEventParser();

    EventSink getEventSink();

    EventStore getEventStore();


}
